home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicMenuUI$ChangeHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.1 KB  |  148 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Window;
  6. import javax.swing.JComponent;
  7. import javax.swing.JMenu;
  8. import javax.swing.KeyStroke;
  9. import javax.swing.MenuElement;
  10. import javax.swing.event.ChangeEvent;
  11. import javax.swing.event.ChangeListener;
  12.  
  13. public class BasicMenuUI$ChangeHandler implements ChangeListener {
  14.    // $FF: synthetic field
  15.    private final BasicMenuUI this$0;
  16.    public JMenu menu;
  17.    // $FF: renamed from: ui javax.swing.plaf.basic.BasicMenuUI
  18.    public BasicMenuUI field_0;
  19.    public boolean isSelected;
  20.    public Component wasFocused;
  21.  
  22.    public BasicMenuUI$ChangeHandler(BasicMenuUI var1, JMenu var2, BasicMenuUI var3) {
  23.       this.this$0 = var1;
  24.       this.isSelected = false;
  25.       this.menu = var2;
  26.       this.field_0 = var3;
  27.       this.validateKeyboardActions(this.menu.isSelected());
  28.    }
  29.  
  30.    // $FF: synthetic method
  31.    static BasicMenuUI access$0(BasicMenuUI$ChangeHandler var0) {
  32.       return var0.this$0;
  33.    }
  34.  
  35.    // $FF: synthetic method
  36.    static MenuElement access$1(BasicMenuUI$ChangeHandler var0, MenuElement[] var1, int var2) {
  37.       return var0.nextEnabledChild(var1, var2);
  38.    }
  39.  
  40.    // $FF: synthetic method
  41.    static MenuElement access$2(BasicMenuUI$ChangeHandler var0, MenuElement[] var1, int var2) {
  42.       return var0.previousEnabledChild(var1, var2);
  43.    }
  44.  
  45.    private Component findFocusedComponent(Component var1) {
  46.       for(Container var2 = var1.getParent(); var2 != null; var2 = ((Component)var2).getParent()) {
  47.          if (var2 instanceof Window) {
  48.             return ((Window)var2).getFocusOwner();
  49.          }
  50.       }
  51.  
  52.       return null;
  53.    }
  54.  
  55.    private MenuElement nextEnabledChild(MenuElement[] var1, int var2) {
  56.       int var3 = var2;
  57.  
  58.       for(int var4 = var1.length; var3 < var4; ++var3) {
  59.          if (var1[var3] != null) {
  60.             Component var5 = var1[var3].getComponent();
  61.             if (var5 != null && var5.isEnabled()) {
  62.                return var1[var3];
  63.             }
  64.          }
  65.       }
  66.  
  67.       return null;
  68.    }
  69.  
  70.    private MenuElement previousEnabledChild(MenuElement[] var1, int var2) {
  71.       for(int var3 = var2; var3 >= 0; --var3) {
  72.          if (var1[var3] != null) {
  73.             Component var4 = var1[var3].getComponent();
  74.             if (var4 != null && var4.isEnabled()) {
  75.                return var1[var3];
  76.             }
  77.          }
  78.       }
  79.  
  80.       return null;
  81.    }
  82.  
  83.    public void stateChanged(ChangeEvent var1) {
  84.       this.validateKeyboardActions(this.menu.isSelected());
  85.    }
  86.  
  87.    private void validateKeyboardActions(boolean var1) {
  88.       if (var1 != this.isSelected) {
  89.          this.isSelected = var1;
  90.          if (this.isSelected) {
  91.             boolean var2 = this.menu.isRequestFocusEnabled();
  92.             this.wasFocused = this.findFocusedComponent(this.menu);
  93.             if (!var2) {
  94.                this.menu.setRequestFocusEnabled(true);
  95.             }
  96.  
  97.             this.menu.requestFocus();
  98.             if (!var2) {
  99.                this.menu.setRequestFocusEnabled(false);
  100.             }
  101.  
  102.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.CancelAction(this), KeyStroke.getKeyStroke(27, 0, false), 2);
  103.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectNextItemAction(this), KeyStroke.getKeyStroke(40, 0, false), 2);
  104.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectNextItemAction(this), KeyStroke.getKeyStroke("KP_DOWN"), 2);
  105.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectPreviousItemAction(this), KeyStroke.getKeyStroke(38, 0, false), 2);
  106.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectPreviousItemAction(this), KeyStroke.getKeyStroke("KP_UP"), 2);
  107.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectParentItemAction(this), KeyStroke.getKeyStroke(37, 0, false), 2);
  108.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectParentItemAction(this), KeyStroke.getKeyStroke("KP_LEFT"), 2);
  109.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectChildItemAction(this), KeyStroke.getKeyStroke(39, 0, false), 2);
  110.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectChildItemAction(this), KeyStroke.getKeyStroke("KP_RIGHT"), 2);
  111.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.ReturnAction(this), KeyStroke.getKeyStroke(10, 0, false), 2);
  112.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.ReturnAction(this), KeyStroke.getKeyStroke(32, 0, false), 2);
  113.          } else {
  114.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(27, 0, false));
  115.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 0, false));
  116.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke("KP_DOWN"));
  117.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 0, false));
  118.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke("KP_UP"));
  119.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(37, 0, false));
  120.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke("KP_LEFT"));
  121.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(39, 0, false));
  122.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke("KP_RIGHT"));
  123.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(10, 0, false));
  124.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(32, 0, false));
  125.             if (this.wasFocused != null) {
  126.                if (this.wasFocused instanceof JComponent) {
  127.                   JComponent var4 = (JComponent)this.wasFocused;
  128.                   boolean var3 = var4.isRequestFocusEnabled();
  129.                   if (!var3) {
  130.                      var4.setRequestFocusEnabled(true);
  131.                   }
  132.  
  133.                   this.wasFocused.requestFocus();
  134.                   if (!var3) {
  135.                      var4.setRequestFocusEnabled(false);
  136.                   }
  137.                } else {
  138.                   this.wasFocused.requestFocus();
  139.                }
  140.  
  141.                this.wasFocused = null;
  142.             }
  143.          }
  144.       }
  145.  
  146.    }
  147. }
  148.